package com.neouton.crm.customer.entity;


import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.excel.annotation.ExcelCollection;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.neouton.common.entity.BaseEntityVO;
import com.neouton.common.entity.FeeMainVO;
import com.neouton.crm.op.entity.SalesOpportunityVO;
import com.neouton.crm.pm.entity.ContractInfoVO;
import com.neouton.crm.pm.entity.SalesProjectManageVO;
import com.neouton.crm.transpondEmail.entity.TranspondEmailVO;
import com.neouton.crm.transpondEmail.mapper.TranspondEmailMapper;
import lombok.Data;

import java.io.Serializable;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;


/**
 * @program: crm
 * @Timestamp: 2022-11-17
 * @Author: WuJie
 * @Description: 客户信息Vo
 */
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class CustomerVO extends BaseEntityVO implements Serializable {

    /**
     * 主键自增
     */
    @Excel(name = "序号", needMerge = true,width = 15)
    private Integer customerId;

    /**
     * 工商库名称
     */
    @Excel(name = "客户名称", needMerge = true,width = 20)
    private String enterpriseName;

    /**
     * 单位地址
     */
    @Excel(name = "单位地址", needMerge = true,width = 30)
    private String customerAddress;
    /**
     * 座机电话
     */
    @Excel(name = "工作电话", needMerge = true,width = 20)
    private String customerWorkPhone;
    /**
     * 用户信息
     */
    @ExcelCollection(name = "联系人信息")
    private List<ContactsVO> contacts;
    /**
     * 是否禁用（0，启用，1，禁用）
     * 用于导出EXCEL；
     */
    @Excel(name = "是否禁用", needMerge = true,width = 15)
    private String isDeleteStr;
    /**
     * 等级关系中文，用于导出excel
     */
    @Excel(name = "等级关系", needMerge = true,width = 15)
    private String rankCorrelationStr;
    /**
     * 是否为供应商，是/否中文，用于导出EXCEL
     */
    @Excel(name = "是否为供应商", needMerge = true,width = 15)
    private String isSupplierStr;
    /**
     * 审批状态中文，用于导出excel
     */
    @Excel(name = "审核状态", needMerge = true,width = 15)
    private String statusStr;
    /**
     * 审批意见
     */
    @Excel(name = "审批意见", needMerge = true,width = 15)
    private String auditOpinion;
    /**
     * 工作流id
     */
    private Integer businessId;
    /**
     * 客户名称ID
     */
    private Integer enterpriseId;
    /**
     * 客户名称
     */
    private String customerName;
    /**
     * 审批ID
     */
    private Integer approvalId;

    /**
     * 等级关系
     */
    private Integer rankCorrelation;

    /**
     * 所有人
     */
    private Integer possessor;
    /**
     * 审核状态
     */
    private Integer status;

    /**
     * 抄送对象/审批人
     */
//    private String sendEmail;
    /**
     * 备注
     */
    @Excel(name = "备注", needMerge = true,width = 20)
    private String remark;
    /**
     * 是否删除（0，未删，1，删除）
     */
    private Integer isDelete;


    /**
     * 是否为供应商（0，是，1，否）
     */
    private Integer isSupplier;




    /**
     * 工商库简称
     */
    private String enterpriseAbbreviation;

    /**
     * 申请原因
     */
    private String reason;
    /**
     * 审批状态
     * 0已提交
     * 1已通过
     * 2已驳回
     */
    private Integer approvalStatus;

    /**
     * 最后审批时间
     */
    private Timestamp lastUpdateDate;

    /**
     * 审批类型
     */
    private Integer approvalType;

    /**
     * 所有事件
     */
    private List<Object> allThings = new ArrayList<>();
    /**
     * 项目信息集合
     */
    private List<SalesProjectManageVO> salesProjectList;
    /**
     * 机会信息集合
     */
    private List<SalesOpportunityVO> salesOpportunityList;
    /**
     * 报销信息集合
     */
    private List<FeeMainVO> feeMainList;
    /**
     * 回款计划信息集合
     */
    private List<ContractInfoVO> bmpList;
    /**
     * 回款记录信息集合
     */
    private List<ContractInfoVO> bmrList;
    /**
     * 未完全回款合同信息集合
     */
    private List<ContractInfoVO> notBmrList;

    /**
     * 申请人
     */
    private Integer applicant;
    /**
     * 申请时间
     */
    private Timestamp applyTime;
    /**
     * 下一处理人
     */
    private Integer nextApprover;

    /**
     * 编号
     */
    private String approvalCode;

    private String askReason;
    /**
     * 转发人员集合
     */
    private List<Integer> transpondUseIdList;
    /**
     * 转发表信息集合
     */
    private List<TranspondEmailVO> transpondEmailVos;

    private String rankCorrelationName;

    private String possessorName;
}
